<?php
/**
 * <https://y.st./>
 * Copyright © 2017 Alex Yst <mailto:copyright@y.st>
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <https://www.gnu.org./licenses/>.
**/

$xhtml = array(
	'title' => 'Classifying wheat and cotton as minerals',
	'body' => <<<END
<img src="/img/CC_BY-SA_4.0/y.st./weblog/2017/05/15.png" alt="Wheat and cotton stats" class="weblog-header-image" width="800" height="600" />
<section id="general">
	<h2>General news</h2>
	<p>
		I tried stuffing a pizza crust with spring rolls as planned at work today.
		It actually turned out very well!
		My one complaint though it that the rolls were under-cooked.
		Next time, I should cook them before rolling them into the crust, then cook them again inside the pizza.
	</p>
	<p>
		I smashed my finger in the drive-through window when opening it today.
		That really hurt.
		I should be more careful.
	</p>
	<p>
		On my breaks, I planned the callback functions for <code>minequest</code>&apos;s $a[API].
		I&apos;m going to have so much fun with that mod once it&apos;s complete.
		However, I also thought of an issue in <code>minestats</code> while I was planning the other mod&apos;s $a[API].
		Specifically, farm plants are considered minerals in some circumstances, but not others.
		If the plant drops one item and that item is its production item, not its seeds, it&apos;ll be counted as a mineral.
		This results in <code>minestats</code> claiming you&apos;ve mined, for example, four wheat when you&apos;ve actually harvested thirty.
		Also, labelling it as the number of &quot;wheat mined&quot; would look strange.
		I tried running a simulation once I got home, and it appears to only affect underdeveloped farm plants, in practice.
		I didn&apos;t realise you could even get any crops from the underdeveloped plants.
		In any case, farm plants have eight stages, labelled one through eight (I know, I&apos;m disappointed in the developers for skipping zero too), and stage six has the highest probability of this issue occurring.
		Stages before that work their way up in probability until the peak at stage six, then start heading down at stage seven, but completely drop off at stage eight.
		This really challenges how I define in-game minerals.
		I already had to give up on calling coral a mineral for the purposes of <code>minestats</code>, but now to need to call wheat and cotton sometimes a mineral and sometimes not?
		Preposterous!
		Thankfully, I came up with a way to disqualify farm plants, even though I still don&apos;t have a way to qualify coral.
		All I need to do is program the mineral checker to see if a node has more than one drop defined, and if so, if there&apos;s a limit of one drop.
		For example, gravel defines two drops, but there&apos;s a limit of one.
		Each gravel node will drop either gravel or flint, but never both, so gravel/flint is a mineral for the purposes of <code>minestats</code>.
		On the other hand, wheat has four drops defined and no limit.
		It can drop up to two wheat and two seeds any time you harvest it, so it doesn&apos;t qualify as a mineral.
	</p>
	<p>
		The funny part is if I had a better way to control the displayed stats, I wouldn&apos;t even mind wheat and cotton being counted.
		But because they&apos;re only counted sometimes, I can&apos;t have them labelled as the number harvested (or mined, actually).
		If I could instead call them &quot;lucky wheat harvested&quot; and such, I&apos;d love to leave the counter alone as a feature.
		As long as it implies it&apos;s the full count though, it&apos;s a bug and needs to be eliminated.
	</p>
	<p>
		My <a href="/a/canary.txt">canary</a> still sings the tune of freedom and transparency.
	</p>
</section>
END
);
